package com.projeto.bola.web.agendaPartida;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.projeto.bola.web.grupoEsporte.GrupoEsporte;

public class AgendaPartidaDAOHibernate implements AgendaPartidaDAO{
	
	private Session sessao;
		
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvarAgenda(AgendaPartida agendaPartida) {
		this.sessao.save(agendaPartida);		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<AgendaPartida> listarPartidasPorGrupo(GrupoEsporte grupo) {
		String sql = "from AgendaPartida where id_grupo_esporte = :id_grupo";				
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("id_grupo",grupo.getId());
		return consulta.list();
	}

	@Override
	public void excluirPartida(AgendaPartida partida) {
		//limpar os participantes antes de excluir a partida
		//ParticipanteGrupoRN participantePartida = new ParticipanteGrupoRN();
		
		this.sessao.delete(partida);		
	}

	@Override
	public AgendaPartida consultaPartidaPorID(Integer id) {
		String sql = "from AgendaPartida where id = :id_partida";				
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("id_partida",id);
		return (AgendaPartida) consulta.uniqueResult();
	}
}
